A file server is a computer that provides file service relating to the organization of information on storage devices, such as disks. The file server or filer includes a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on the disks. Each “on-disk” file may be implemented as a set of data structures, e.g., disk blocks, configured to store information. A directory, conversely, may be implemented as a specially formatted file in which information by other files and directories is stored.
A filer may be further configured to operate according to a client/server model of information delivery to thereby allow many clients to access files stored on a server. In this model, the client may comprise an application, such as a database application, executing on a computer that connects to the filer over a computer network. This computer network could be a point to point link, a shared local area network (LAN), a wide area network (WAN) or a virtual private network (VPN) implemented over a public network such as the Internet. Each client may request the services of the file system on the filer by issuing file system protocol messages (typically in the form of packets) to the filer over the network.
As used herein, the term “storage operating system” generally refers to the computer-executable code operable on a storage system that manages data access and may, in the case of filers, implement file system semantics. In this sense, Data ONTAP software is an example of such a storage operating system implemented as a microkernel. The storage operating system can also be implemented as an application program operating over a general-purpose operating system, such as UNIX® or Windows NT®, or as a general-purpose operating system with configurable functionality, which is configured for storage applications as described herein.
The storage devices in a file server environment are typically disk drives organized as a disk array, wherein each disk is a self-contained rotating magnetic media storage device. A disk is typically a collection of platters, rotatable on a spindle, with each platter surface divided into concentric tracks, and each track divided into sectors. The sector is the smallest unit that can be individually accessed for input/output (I/O) operations, e.g., read or written. The term disk in this context is synonymous with a hard disk drive (HDD), a direct access storage device (DASD) or a logical unit number (lun) in a storage device. Unless the context indicates otherwise, the term “disk” as used herein is intended to embrace not only magnetic storage devices, but also optical, solid state and other types of storage devices.
The disk storage typically implemented has one or more storage “volumes” comprised of a collection of physical storage disks, defining an overall logical arrangement of storage space. Currently available filer implementations can serve a large number of discrete volumes. Each volume is generally associated with its own file system. The disks within a volume/file system are typically organized as one or more groups of Redundant Array of Independent (or Inexpensive) Disks (RAID). RAID implementations enhance the reliability and integrity of data storage through the redundant writing of data stripes across a given number of physical disks in the RAID group, and the appropriate caching of parity information with respect to the striped data. In the example of a WAFL based file system and process, a RAID 4 implementation is advantageously employed. This implementation specifically entails the striping of data across a group of disks, and separate parity caching within a selected disk of the RAID 4 group.
Typically, each filer is deemed to “own” the disks that comprise the volumes serviced by that filer. This ownership means that the filer is responsible for servicing the data contained on those disks. Only the filer that owns a particular disk should be able to write data to that disk. The maintenance of solo disk ownership helps to ensure data integrity and coherency.
FIG. 1 is a schematic block diagram of an exemplary storage area network (SAN) environment 100. The network 100 is based around a local area network (LAN) 102 interconnection. However, a wide area network (WAN), virtual private network (VPN), or a combination of LAN, WAN and VPM implementations can be established. For the purposes of this description the term LAN should be taken broadly to include any acceptable networking architecture. The LAN interconnects various clients based upon personal computers 104, servers 106 and a network cache 108. Also interconnected to the LAN may be a switch/router 110 that provides a gateway to the well-known Internet 112, thereby enabling various network devices to transmit and receive Internet based information, including e-mail, web content, and the like. Each of the devices attached to the LAN 102 include an appropriate conventional network interface arrangement (not shown) for communicating over the LAN using desired communication protocol such as the well-known Transport Control Protocol/Internet Protocol (TCP/IP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), or Simple Network Management Protocol (SNMP).
In this implementation, exemplary filers 114 and 115 are connected to the LAN 102. The filers, described further below are file servers configured to control storage of, and access to, data in a set of interconnected storage volumes. The filers 114, 115 are each connected to one of a multiplicity of ports on a fibre channel switch 113 that also connects to a plurality of a fibre channel arbitrated loops (also termed “FC-AL”) 116 and 117. The number of filers and number of loops are highly variable and two of each are shown simply by way of example. A plurality of disks 118, 120 and 122 are shown connected on Fibre Channel Loop I 116. Likewise disks 124, 126 and 128 reside on exemplary Fibre Channel Loop II 117. Again, the number of disks on a given loop is highly variable and three disks are shown only by way of example. Each of these disks (in one exemplary implementation) is part of a volume served by the filer. As described further below, each volume is typically organized to include one or more RAID groups of physical storage disks for increased data storage integrity and reliability. For the purposes of this description, Filer A 114 is deemed to own the disks 118, 120 and 122, while Filer B 115 is deemed to own disks 124, 126 and 128. However, ownership can cross loops. In summary, ownership means that only an “owning” filer can both read from and write to a given set of owned disks, while all other “non-owning” filers can only read from non-owned disks.
All disks, including disks 118, 120 and 122 (attached to Fibre Channel Loop I 116) and disks 124, 126 and 128 (attached to Loop II 117) include their own internal firmware FW that facilitates operation, network communication and control of the respective disk. Occasionally, a vendor may need to update the firmware within one or more disks. At such times, information transfer to and from the disk must be interrupted.
Where a disk is directly attached to the filer or another server (i.e. a non-SAN configuration), the update of the firmware is fairly straightforward and reliable the disk is taken off line by the filer, the firmware update is loaded, and the disk is placed back into operation.
However, when a vendor wishes to provide an update to the existing firmware on one or more disks in a fibre channel fabric, the update is typically transmitted via the respective fibre channel loop 116, 117 to the targeted disk or disks. In order to avoid errors and corruption of downloaded firmware, other system devices connected to the fibre channel loops 116, 117 must be informed that a given disk is currently downloading firmware and, hence, is unavailable. For example, it is possible (as part of the error recovery procedure undertaken by system devices) that certain FC-AL reset requests may be issued by the filer if an owned disk undergoes a firmware download. These reset requests can corrupt the firmware download. To avoid corruption, a more-reliable mechanism of determining when a given disk is undergoing a firmware download is needed.
One such mechanism can comprise a generalized broadcast network message announcing the firmware download that is sent throughout the network. However, a broadcast approach is cumbersome, particularly when the fibre channel fabric is visible to one or more interconnected systems at once and certain disks are only “owned” by certain connected systems and not others. Thus, it is desirable to provide an efficient way to inform only the owning filer that a disk is downloading firmware and is, therefore, temporarily unavailable.
Thus it is desirable to provide a mechanism for notifying other filers/devices on the SAN that a given disk is undergoing a firmware update in a manner so that the download proceeds with the same reliability as a directly attached disk.